using System;
using OracleInternal.Common;
using OracleInternal.TTC.Accessors;

namespace OracleInternal.TTC
{
	internal class TTCDataTypeNegotiation : TTCMessage
	{
		internal const byte TTC_FLD_VSN_820 = 1;

		internal const byte TTC_FLD_VSN_902 = 2;

		internal const byte TTC_FLD_VSN_1000 = 3;

		internal const byte TTC_FLD_VSN_1020 = 4;

		internal const byte TTC_FLD_VSN_1100 = 5;

		internal const byte TTC_FLD_VSN_1120 = 6;

		internal const byte TTC_FLD_VSN_1200 = 7;

		internal const byte TTC_FLD_VSN_1220 = 8;

		internal const byte TTC_FLD_VSN_1220_EXT1 = 9;

		internal const byte TTC_FLD_VSN_18_1 = 10;

		internal const byte TTC_FLD_VSN_18_1_EXT1 = 11;

		internal const byte TTC_FLD_VSN_19_1 = 12;

		internal const byte TTC_FLD_VSN_19_3 = 13;

		internal const byte TTC_FLD_VSN_20_1 = 14;

		private const byte TTC_FLD_VSN_MAX = 14;

		internal const byte KPCCAP_TTC_VSN_OFFSET = 7;

		private const byte KPULMAXL = 6;

		internal const byte KPCCAP_CTB_TTC1_EOCS = 1;

		private const byte KPCCAP_CTB_TTC1_INRC = 8;

		private const byte KPCCAP_CTB_TTC1_FBVC = 32;

		internal const byte KPCCAP_CTB_OCI1_FSAP = 16;

		private const byte KPCCAP_CTB_OCI1_APCTX = 128;

		private const byte KOLE_LOB_CAP_UB8_SIZE = 1;

		private const byte KPCCAP_CTB_OCI3_OCSSYNC = 32;

		private const byte KOLE_LOB_CAP_ENCS = 2;

		private const byte KOLE_LOB_CAP_DIL = 4;

		private const byte KOLE_LOB_CAP_TMPLOC_SZ = 8;

		private const byte KOLE_LOB_CAP_ARRAY = 32;

		private const byte KOLE_LOB_CAP_PRFCH = 64;

		private const byte KOLE_LOB_CAP_12C = 128;

		private const byte KOLE_LOB2_CAP_QUASI = 1;

		private const byte KOLE_LOB_CAP_ALL = 235;

		private const int KPCCAP_KOLE_LOB_OFFSET = 23;

		private const byte KOLE_LOB2_CAP_ALL = 1;

		private const int KPCCAP_CT_LLOB2_OFFSET = 42;

		private const byte KPCCAP_CT_AQ_PROP_DQA = 1;

		private const byte KPCCAP_CT_AQ_BUFQ = 2;

		private const byte KPCCAP_CT_AQ_BPROP_RCV = 4;

		private const byte KOPT_VNFT = 3;

		private const byte KPCCAP_CTB_TTC2_ZLNP = 4;

		private const byte KPCCAP_CTB_TTC2_NCPR = 1;

		private const byte ZTVOV_KPCLOG_O30L = 0;

		private const byte ZTVOV_KPCLOG_O3L = 1;

		internal const byte ZTVOV_KPCLOG_O5L_NP = 2;

		private const byte ZTVOV_KPCLOG_O4L = 4;

		private const byte ZTVOV_KPCLOG_O5L = 8;

		private const byte ZTVOV_KPCLOG_O6L = 16;

		private const byte KZTVOV_KPCLOG_O7L_MR = 32;

		private const int KZTVOV_KPCLOG_O8L_LI = 64;

		internal const int KPCCAP_CTB_TTC3_COLMETADATA = 1;

		private const byte KPCCAP_CTB_TTC3_TZVER = 2;

		internal const int KPCCAP_CTB_TTC3_LTXID = 8;

		internal const int KPCCAP_CTB_TTC3_IMPLRES = 16;

		internal const int KPCCAP_CTB_TTC3_BIGCHUNK_CLR = 32;

		internal const int KPCCAP_CTB_TTC3_KEEP_OUT_ORDER = 128;

		internal const int KPCCAP_CTB_TTC4_RENEG = 1;

		internal const int KPCCAP_CTB_TTC4_IBNM = 4;

		internal const int KPCCAP_CT_UB2DTY = 27;

		internal const int KPCCAP_CTB_TTC3 = 37;

		internal const int KPCCAP_CTB_XML = 36;

		internal const int KPCCAP_CTB_XML_UNSET = 0;

		internal const int KPCCAP_CTB_XML_CSXXMLT = 1;

		internal const int KPCCAP_CTB_XML_LOBSTR_IMG_ONLY = 2;

		internal const int KPCCAP_CTB_XML_LOBTOKENBASED_IMG_ONLY = 4;

		internal const int KPCCAP_CTB_OCI2 = 31;

		internal const int KPCCAP_CTB_OCI2_SCTAF = 1;

		internal const int KPCCAP_CTB_OCI2_FTHDR = 2;

		internal const int KPCCAP_CTB_OCI2_CQC = 4;

		internal const int KPCCAP_CTB_OCI2_EDITION = 8;

		internal const int KPCCAP_CTB_OCI2_SRVCP = 16;

		internal const int KPCCAP_RTB_TTC_SESSSTATEOPS = 16;

		private const int KPCCAP_RTB_TTC = 6;

		private const int KPCCAP_RTB_TTC_ZCPY = 1;

		private const int KPCCAP_RTB_TTC_TZLT = 2;

		private const int KPCCAP_RTB_TTC_32K = 4;

		private const short DTYEXPBASE = 256;

		private const short DTY0 = 0;

		private const short DTYCHR = 1;

		private const short DTYNUM = 2;

		private const short DTYINT = 3;

		private const short DTYFLT = 4;

		private const short DTYSTR = 5;

		private const short DTYVNU = 6;

		private const short DTYPDN = 7;

		private const short DTYLNG = 8;

		private const short DTYVCS = 9;

		private const short DTYTI5 = 10;

		private const short DTYRID = 11;

		private const short DTYDAT = 12;

		private const short DTYIDT = 13;

		private const short DTYIJU = 14;

		private const short DTYVBI = 15;

		private const short DTYDIF = 16;

		private const short DTYDOF = 17;

		private const short DTYDTZ = 18;

		private const short DTYDYN = 19;

		private const short DTYDPC = 20;

		private const short DTYBFLOAT = 21;

		private const short DTYBDOUBLE = 22;

		internal const short DTYBIN = 23;

		private const short DTYUB1 = 23;

		private const short DTYLBI = 24;

		private const short DTYUB2 = 25;

		private const short DTYUB4 = 26;

		private const short DTYB1 = 27;

		private const short DTYB2 = 28;

		private const short DTYB4 = 29;

		private const short DTYSB4 = 29;

		private const short DTYWORD = 30;

		private const short DTYUWORD = 31;

		private const short DTYIIN = 29;

		private const short DTYCURID = 25;

		private const short DTYAMID = 26;

		private const short DTYDBA = 26;

		private const short DTYPTN = 26;

		private const short DTYPB = 32;

		private const short DTYPW = 33;

		private const short DTYOER8 = 290;

		private const short DTYFUN = 291;

		private const short DTYAUA = 292;

		private const short DTYRXH7 = 293;

		private const short DTYNA6 = 294;

		private const short DTYOAC = 39;

		private const short DTYAMS = 40;

		private const short DTYBRN = 41;

		private const short DTYBRP = 298;

		private const short DTYBRV = 299;

		private const short DTYKVA = 300;

		private const short DTYCLS = 301;

		private const short DTYCUI = 302;

		private const short DTYDFN = 303;

		private const short DTYDQR = 304;

		private const short DTYDSC = 305;

		private const short DTYEXE = 306;

		private const short DTYFCH = 307;

		private const short DTYGBV = 308;

		private const short DTYGEM = 309;

		private const short DTYGIV = 310;

		private const short DTYOKG = 311;

		private const short DTYHMI = 312;

		private const short DTYINO = 313;

		private const short DTYOPQ = 58;

		private const short DTYLNF = 315;

		private const short DTYONT = 316;

		private const short DTYOPE = 317;

		private const short DTYOSQ = 318;

		private const short DTYSFE = 319;

		private const short DTYSPF = 320;

		private const short DTYVSN = 321;

		private const short DTYUD7 = 322;

		private const short DTYDSA = 323;

		private const short DTYUIN = 68;

		private const short DTYBRI = 69;

		private const short DTY70 = 70;

		private const short DTYPIN = 327;

		private const short DTYPFN = 328;

		private const short DTYPPT = 329;

		private const short DTYOCU = 74;

		private const short DTYSTO = 331;

		private const short DTY76 = 76;

		private const short DTYARC = 333;

		private const short DTYMRS = 334;

		private const short DTYMRT = 335;

		private const short DTYMRG = 336;

		private const short DTYMRR = 337;

		private const short DTYMRC = 338;

		private const short DTYVER = 339;

		private const short DTYLON2 = 340;

		private const short DTYINO2 = 341;

		private const short DTYALL = 342;

		private const short DTYUDB = 343;

		private const short DTYAQI = 344;

		private const short DTYULB = 345;

		private const short DTYULD = 346;

		private const short DTYSLS = 91;

		private const short DTYSID = 348;

		private const short DTYNA7 = 349;

		private const short DTYLVC = 94;

		private const short DTYLVB = 95;

		private const short DTYAFC = 96;

		private const short DTYAVC = 97;

		private const short DTYAL7 = 354;

		private const short DTYK2RPC = 355;

		private const short DTYIBFLOAT = 100;

		private const short DTYIBDOUBLE = 101;

		private const short DTYCUR = 102;

		private const short DTYXDP = 359;

		private const short DTYRDD = 104;

		private const short DTYARR = 70;

		private const short DTYVAR = 76;

		private const short DTYLAB = 105;

		private const short DTYOSL = 106;

		private const short DTYOKO8 = 363;

		private const short DTYNTY = 108;

		private const short DTYINTY = 109;

		private const short DTYREF = 110;

		private const short DTYIREF = 111;

		private const short DTYCLOB = 112;

		private const short DTYBLOB = 113;

		private const short DTYBFIL = 114;

		private const short DTYFILE = 114;

		private const short DTYCFIL = 115;

		private const short DTYRSET = 116;

		private const short DTYCWD = 117;

		private const short DTYSVT = 118;

		private const short DTYJSON = 119;

		private const short DTYNAC = 120;

		private const short DTYADT = 121;

		private const short DTYNTB = 122;

		private const short DTYNAR = 123;

		private const short DTYUD12 = 380;

		private const short DTYAL8 = 381;

		private const short DTYLFOP = 382;

		private const short DTYFCRT = 383;

		private const short DTYDNY = 384;

		private const short DTYOPR = 385;

		private const short DTYPLS = 386;

		private const short DTYXID = 387;

		private const short DTYTXN = 388;

		private const short DTYDCB = 389;

		private const short DTYCCA = 390;

		private const short DTYWRN = 391;

		private const short DTYOBJ = 136;

		private const short DTYTLH = 393;

		private const short DTYTOH = 394;

		private const short DTYFOI = 395;

		private const short DTYSID2 = 396;

		private const short DTYTCH = 397;

		private const short DTYPII = 398;

		private const short DTYPFI = 399;

		private const short DTYPPU = 400;

		private const short DTYPTE = 401;

		private const short DTYCLV = 146;

		private const short DTYBLV = 147;

		private const short DTYRXH8 = 404;

		private const short DTYTN12 = 405;

		private const short DTYAUTH = 406;

		private const short DTYKVAL = 407;

		private const short DTYDTR = 152;

		private const short DTYDUN = 153;

		private const short DTYDOP = 154;

		private const short DTYVST = 155;

		private const short DTYODT = 156;

		private const short DTYFGI = 413;

		private const short DTYDSY = 414;

		private const short DTYDSYR8 = 415;

		private const short DTYDSYH8 = 416;

		private const short DTYDSYL = 417;

		private const short DTYDSYT8 = 418;

		private const short DTYDSYV8 = 419;

		private const short DTYDSYP = 420;

		private const short DTYDSYF = 421;

		private const short DTYDSYK = 422;

		private const short DTYDSYY = 423;

		private const short DTYDSYQ = 424;

		private const short DTYDSYC = 425;

		private const short DTYDSYA = 426;

		private const short DTYOT8 = 427;

		private const short DTYDOL = 172;

		private const short DTYDSYTY = 429;

		private const short DTYAQE = 430;

		private const short DTYKV = 431;

		private const short DTYAQD = 432;

		private const short DTYAQ8 = 433;

		private const short DTYTIME = 178;

		private const short DTYTTZ = 179;

		private const short DTYSTAMP = 180;

		private const short DTYSTZ = 181;

		private const short DTYIYM = 182;

		private const short DTYIDS = 183;

		private const short DTYEDATE = 184;

		private const short DTYETIME = 185;

		private const short DTYETTZ = 186;

		private const short DTYESTAMP = 187;

		private const short DTYESTZ = 188;

		private const short DTYEIYM = 189;

		private const short DTYEIDS = 190;

		private const short DTYLDIIF = 191;

		private const short DTYLDIOF = 192;

		private const short DTYRFS = 449;

		private const short DTYRXH10 = 450;

		private const short DTYDCLOB = 195;

		private const short DTYDBLOB = 196;

		private const short DTYDBFIL = 197;

		private const short DTYDJSON = 198;

		private const short DTYKPN = 454;

		private const short DTYKPDNR = 455;

		private const short DTYDSYD = 456;

		private const short DTYDSYS = 457;

		private const short DTYDSYR = 458;

		private const short DTYDSYH = 459;

		private const short DTYDSYT = 460;

		private const short DTYDSYV = 461;

		private const short DTYAQM = 462;

		private const short DTYOER11 = 463;

		private const short DTYBURI = 208;

		private const short DTYPSR = 209;

		private const short DTYAQL = 466;

		private const short DTYOTC = 467;

		private const short DTYKFNO = 468;

		private const short DTYKFNP = 469;

		private const short DTYOKGT8 = 470;

		private const short DTYRASB4 = 471;

		private const short DTYRAUB2 = 472;

		private const short DTYRAUB1 = 473;

		private const short DTYRATXT = 474;

		private const short DTYRSSB4 = 475;

		private const short DTYRSUB2 = 476;

		private const short DTYRSUB1 = 477;

		private const short DTYRSTXT = 478;

		private const short DTYRIDL = 479;

		private const short DTYGLRDD = 480;

		private const short DTYGLRDG = 481;

		private const short DTYGLRDC = 482;

		private const short DTYOKO = 483;

		private const short DTYDPP = 484;

		private const short DTYDPLS = 485;

		private const short DTYDPMOP = 486;

		private const short DTYSITZ = 231;

		private const short DTYESITZ = 232;

		private const short DTYUB8 = 233;

		private const short DTYSTAT = 490;

		private const short DTYRFX = 491;

		private const short DTYFAL = 492;

		private const short DTYCKV = 493;

		private const short DTYDRCX = 494;

		private const short DTYKGH = 495;

		private const short DTYAQO = 496;

		private const short DTYPNTY = 241;

		private const short DTYOKGT = 498;

		private const short DTYKPFC = 499;

		private const short DTYFE2 = 500;

		private const short DTYSPFP = 501;

		private const short DTYDPULS = 502;

		private const short DTY_T_VA = 247;

		private const short DTY_T_TB = 248;

		private const short DTYNLOB = 249;

		private const short DTYREC = 250;

		private const short DTYTAB = 251;

		private const short DTYBOL = 252;

		private const short DTYAQA = 509;

		private const short DTYKPBF = 510;

		private const short DTYDTY = 255;

		private const short DTYTSM = 513;

		private const short DTYMSS = 514;

		private const short DTYABS = 515;

		private const short DTYKPC = 516;

		private const short DTYCRS = 517;

		private const short DTYKKS = 518;

		private const short DTYKSP = 519;

		private const short DTYKSPTOP = 520;

		private const short DTYKSPVAL = 521;

		private const short DTYPSS = 522;

		private const short DTYNLS = 523;

		private const short DTYALS = 524;

		private const short DTYKSDEVTVAL = 525;

		private const short DTYKSDEVTTOP = 526;

		private const short DTYKPSPP = 527;

		private const short DTYKOL = 528;

		private const short DTYLST = 529;

		private const short DTYACX = 530;

		private const short DTYSCS = 531;

		private const short DTYRXH = 532;

		private const short DTYKPDNS = 533;

		private const short DTYKPDCN = 534;

		private const short DTYKPNNS = 535;

		private const short DTYKPNCN = 536;

		private const short DTYKPS = 537;

		private const short DTYAPINF = 538;

		private const short DTYTEN = 539;

		private const short DTYXSSCS = 540;

		private const short DTYXSSSO = 541;

		private const short DTYXSSAO = 542;

		private const short DTYKSRPC = 543;

		private const short DTYKVL = 560;

		private const short DTYSESSGET = 563;

		private const short DTYSESSRLS = 564;

		private const short DTYXSSSDEF = 565;

		private const short DTYKPDQCINV = 572;

		private const short DTYKPDQIDC = 573;

		private const short DTYKPDQCSTA = 574;

		private const short DTYKPRS = 575;

		private const short DTYKPDQCID = 576;

		private const short DTYTRCEVT = 577;

		private const short DTYRTSTRM = 578;

		private const short DTYSESSRET = 579;

		private const short DTYSCN6 = 580;

		private const short DTYKECPA = 581;

		private const short DTYKECPP = 582;

		private const short DTYSXA = 583;

		private const short DTYKVARR = 584;

		private const short DTYKPNGN = 585;

		private const short DTYXSNSOP = 590;

		private const short DTYXSATTR = 591;

		private const short DTYXSNS = 592;

		private const short DTYTXT = 593;

		private const short DTYXSSESSNS = 594;

		private const short DTYXSATTOP = 595;

		private const short DTYXSCREOP = 596;

		private const short DTYXSDETOP = 597;

		private const short DTYXSDESOP = 598;

		private const short DTYXSSETSP = 599;

		private const short DTYXSSIDP = 600;

		private const short DTYXSPRIN = 601;

		private const short DTYXSKVL = 602;

		private const short DTYXSSSDEF2 = 603;

		private const short DTYXSNSOP2 = 604;

		private const short DTYXSNS2 = 605;

		private const short DTYIMPLRES = 611;

		private const short DTYOER = 612;

		private const short DTYUB1ARRAY = 613;

		private const short DTYSESSSTATE = 614;

		private const short DTYAPPCONTREPLAY = 615;

		private const short DTYAPPCONTCTL = 616;

		private const short DTYKPDNREQ = 622;

		private const short DTYKPDNRNF = 623;

		private const short DTYKPNGNC = 624;

		private const short DTYKPNRI = 625;

		private const short DTYAQENQ = 626;

		private const short DTYAQDEQ = 627;

		private const short DTYAQJMS = 628;

		private const short DTYKPDNRPAY = 629;

		private const short DTYKPDNRACK = 630;

		private const short DTYKPDNRMP = 631;

		private const short DTYKPDNRDQ = 632;

		private const short DTYCHUNKINFO = 636;

		private const short DTYSCN = 637;

		private const short DTYSCN8 = 638;

		private const short DTYUDS = 639;

		private const short DTYTNP = 640;

		private const short DTYMAX = 640;

		private const short SCALAR = 0;

		private const short RECORD = 1;

		private static short[] typeAndRep;

		private static short[] typeAndRepFor1100;

		private static short[] typeAndRepFor1200;

		private short[] runtimeTypeAndRep;

		internal static int s_latestTZVersion;

		private const short UTF8_CHARACTER_SET_ID = 871;

		internal short m_clientRemoteIn;

		internal short m_clientRemoteOut;

		internal short m_ncharSetId;

		internal byte[] m_dbTimeZoneBytes;

		internal bool m_sendTZDataAsLocalTime;

		internal byte m_clientFlags;

		internal byte[] m_CompileTimeCapabilities = new byte[43]
		{
			6,
			1,
			0,
			0,
			106,
			1,
			1,
			14,
			1,
			1,
			1,
			1,
			1,
			1,
			0,
			41,
			144,
			3,
			7,
			3,
			0,
			1,
			0,
			235,
			1,
			0,
			5,
			1,
			0,
			0,
			0,
			24,
			0,
			0,
			7,
			32,
			2,
			58,
			0,
			0,
			5,
			0,
			1
		};

		private const byte KPCCAP_RT_TZ = 1;

		private const byte KPCCAP_RT_COMPAT_UNK = 0;

		private const byte KPCCAP_RT_COMPAT_80 = 1;

		private const byte KPCCAP_RT_COMPAT_81 = 2;

		private const byte KPCCAP_RT_TZ_EX = 1;

		internal byte[] m_RuntimeCapabilities = new byte[7]
		{
			2,
			1,
			0,
			0,
			0,
			0,
			0
		};

		internal bool m_b32kTypeSupported;

		internal bool m_bSupportSessionStateOps;

		static TTCDataTypeNegotiation()
		{
			typeAndRep = new short[2561];
			typeAndRepFor1100 = null;
			typeAndRepFor1200 = null;
			s_latestTZVersion = 21;
			typeAndRep[0] = 1;
			AddTypeRepresentation(1, 0, 1, 1);
			AddTypeRepresentation(2, 0, 2, 10);
			AddTypeRepresentation(8, 0, 8, 1);
			AddTypeRepresentation(12, 0, 12, 10);
			AddTypeRepresentation(23, 0, 23, 1);
			AddTypeRepresentation(24, 0, 24, 1);
			AddTypeRepresentation(25, 0, 25, 1);
			AddTypeRepresentation(26, 0, 26, 1);
			AddTypeRepresentation(27, 0, 27, 1);
			AddTypeRepresentation(28, 0, 28, 1);
			AddTypeRepresentation(29, 0, 29, 1);
			AddTypeRepresentation(30, 0, 30, 1);
			AddTypeRepresentation(31, 0, 31, 1);
			AddTypeRepresentation(32, 0, 32, 1);
			AddTypeRepresentation(33, 0, 33, 1);
			AddTypeRepresentation(10, 1, 10, 1);
			AddTypeRepresentation(11, 1, 11, 1);
			AddTypeRepresentation(40, 1, 40, 1);
			AddTypeRepresentation(41, 1, 41, 1);
			AddTypeRepresentation(117, 1, 117, 1);
			AddTypeRepresentation(120, 1, 120, 1);
			AddTypeRepresentation(290, 1, 290, 1);
			AddTypeRepresentation(291, 1, 291, 1);
			AddTypeRepresentation(292, 1, 292, 1);
			AddTypeRepresentation(293, 1, 293, 1);
			AddTypeRepresentation(294, 1, 294, 1);
			AddTypeRepresentation(298, 1, 298, 1);
			AddTypeRepresentation(299, 1, 299, 1);
			AddTypeRepresentation(300, 1, 300, 1);
			AddTypeRepresentation(301, 1, 301, 1);
			AddTypeRepresentation(302, 1, 302, 1);
			AddTypeRepresentation(303, 1, 303, 1);
			AddTypeRepresentation(304, 1, 304, 1);
			AddTypeRepresentation(305, 1, 305, 1);
			AddTypeRepresentation(306, 1, 306, 1);
			AddTypeRepresentation(307, 1, 307, 1);
			AddTypeRepresentation(308, 1, 308, 1);
			AddTypeRepresentation(309, 1, 309, 1);
			AddTypeRepresentation(310, 1, 310, 1);
			AddTypeRepresentation(311, 1, 311, 1);
			AddTypeRepresentation(312, 1, 312, 1);
			AddTypeRepresentation(313, 1, 313, 1);
			AddTypeRepresentation(315, 1, 315, 1);
			AddTypeRepresentation(316, 1, 316, 1);
			AddTypeRepresentation(317, 1, 317, 1);
			AddTypeRepresentation(318, 1, 318, 1);
			AddTypeRepresentation(319, 1, 319, 1);
			AddTypeRepresentation(320, 1, 320, 1);
			AddTypeRepresentation(321, 1, 321, 1);
			AddTypeRepresentation(322, 1, 322, 1);
			AddTypeRepresentation(323, 1, 323, 1);
			AddTypeRepresentation(327, 1, 327, 1);
			AddTypeRepresentation(328, 1, 328, 1);
			AddTypeRepresentation(329, 1, 329, 1);
			AddTypeRepresentation(331, 1, 331, 1);
			AddTypeRepresentation(333, 1, 333, 1);
			AddTypeRepresentation(334, 1, 334, 1);
			AddTypeRepresentation(335, 1, 335, 1);
			AddTypeRepresentation(336, 1, 336, 1);
			AddTypeRepresentation(337, 1, 337, 1);
			AddTypeRepresentation(338, 1, 338, 1);
			AddTypeRepresentation(339, 1, 339, 1);
			AddTypeRepresentation(340, 1, 340, 1);
			AddTypeRepresentation(341, 1, 341, 1);
			AddTypeRepresentation(342, 1, 342, 1);
			AddTypeRepresentation(343, 1, 343, 1);
			AddTypeRepresentation(344, 1, 344, 1);
			AddTypeRepresentation(345, 1, 345, 1);
			AddTypeRepresentation(346, 1, 346, 1);
			AddTypeRepresentation(348, 1, 348, 1);
			AddTypeRepresentation(349, 1, 349, 1);
			AddTypeRepresentation(354, 1, 354, 1);
			AddTypeRepresentation(355, 1, 355, 1);
			AddTypeRepresentation(359, 1, 359, 1);
			AddTypeRepresentation(363, 1, 363, 1);
			AddTypeRepresentation(380, 1, 380, 1);
			AddTypeRepresentation(381, 1, 381, 1);
			AddTypeRepresentation(382, 1, 382, 1);
			AddTypeRepresentation(383, 1, 383, 1);
			AddTypeRepresentation(384, 1, 384, 1);
			AddTypeRepresentation(385, 1, 385, 1);
			AddTypeRepresentation(386, 1, 386, 1);
			AddTypeRepresentation(387, 1, 387, 1);
			AddTypeRepresentation(388, 1, 388, 1);
			AddTypeRepresentation(389, 1, 389, 1);
			AddTypeRepresentation(390, 1, 390, 1);
			AddTypeRepresentation(391, 1, 391, 1);
			AddTypeRepresentation(393, 1, 393, 1);
			AddTypeRepresentation(394, 1, 394, 1);
			AddTypeRepresentation(395, 1, 395, 1);
			AddTypeRepresentation(396, 1, 396, 1);
			AddTypeRepresentation(397, 1, 397, 1);
			AddTypeRepresentation(398, 1, 398, 1);
			AddTypeRepresentation(399, 1, 399, 1);
			AddTypeRepresentation(400, 1, 400, 1);
			AddTypeRepresentation(401, 1, 401, 1);
			AddTypeRepresentation(404, 1, 404, 1);
			AddTypeRepresentation(405, 1, 405, 1);
			AddTypeRepresentation(406, 1, 406, 1);
			AddTypeRepresentation(407, 1, 407, 1);
			AddTypeRepresentation(413, 1, 413, 1);
			AddTypeRepresentation(414, 1, 414, 1);
			AddTypeRepresentation(415, 1, 415, 1);
			AddTypeRepresentation(416, 1, 416, 1);
			AddTypeRepresentation(417, 1, 417, 1);
			AddTypeRepresentation(418, 1, 418, 1);
			AddTypeRepresentation(419, 1, 419, 1);
			AddTypeRepresentation(420, 1, 420, 1);
			AddTypeRepresentation(421, 1, 421, 1);
			AddTypeRepresentation(422, 1, 422, 1);
			AddTypeRepresentation(423, 1, 423, 1);
			AddTypeRepresentation(424, 1, 424, 1);
			AddTypeRepresentation(425, 1, 425, 1);
			AddTypeRepresentation(426, 1, 426, 1);
			AddTypeRepresentation(427, 1, 427, 1);
			AddTypeRepresentation(429, 1, 429, 1);
			AddTypeRepresentation(430, 1, 430, 1);
			AddTypeRepresentation(431, 1, 431, 1);
			AddTypeRepresentation(432, 1, 432, 1);
			AddTypeRepresentation(433, 1, 433, 1);
			AddTypeRepresentation(449, 1, 449, 1);
			AddTypeRepresentation(450, 1, 450, 1);
			AddTypeRepresentation(454, 1, 454, 1);
			AddTypeRepresentation(455, 1, 455, 1);
			AddTypeRepresentation(456, 1, 456, 1);
			AddTypeRepresentation(457, 1, 457, 1);
			AddTypeRepresentation(458, 1, 458, 1);
			AddTypeRepresentation(459, 1, 459, 1);
			AddTypeRepresentation(460, 1, 460, 1);
			AddTypeRepresentation(461, 1, 461, 1);
			AddTypeRepresentation(462, 1, 462, 1);
			AddTypeRepresentation(463, 1, 463, 1);
			AddTypeRepresentation(466, 1, 466, 1);
			AddTypeRepresentation(467, 1, 467, 1);
			AddTypeRepresentation(468, 1, 468, 1);
			AddTypeRepresentation(469, 1, 469, 1);
			AddTypeRepresentation(470, 1, 470, 1);
			AddTypeRepresentation(471, 1, 471, 1);
			AddTypeRepresentation(472, 1, 472, 1);
			AddTypeRepresentation(473, 1, 473, 1);
			AddTypeRepresentation(474, 1, 474, 1);
			AddTypeRepresentation(475, 1, 475, 1);
			AddTypeRepresentation(476, 1, 476, 1);
			AddTypeRepresentation(477, 1, 477, 1);
			AddTypeRepresentation(478, 1, 478, 1);
			AddTypeRepresentation(479, 1, 479, 1);
			AddTypeRepresentation(480, 1, 480, 1);
			AddTypeRepresentation(481, 1, 481, 1);
			AddTypeRepresentation(482, 1, 482, 1);
			AddTypeRepresentation(483, 1, 483, 1);
			AddTypeRepresentation(484, 1, 484, 1);
			AddTypeRepresentation(485, 1, 485, 1);
			AddTypeRepresentation(486, 1, 486, 1);
			AddTypeRepresentation(490, 1, 490, 1);
			AddTypeRepresentation(491, 1, 491, 1);
			AddTypeRepresentation(492, 1, 492, 1);
			AddTypeRepresentation(493, 1, 493, 1);
			AddTypeRepresentation(494, 1, 494, 1);
			AddTypeRepresentation(495, 1, 495, 1);
			AddTypeRepresentation(496, 1, 496, 1);
			AddTypeRepresentation(498, 1, 498, 1);
			AddTypeRepresentation(499, 1, 499, 1);
			AddTypeRepresentation(500, 1, 500, 1);
			AddTypeRepresentation(501, 1, 501, 1);
			AddTypeRepresentation(502, 1, 502, 1);
			AddTypeRepresentation(509, 1, 509, 1);
			AddTypeRepresentation(510, 1, 510, 1);
			AddTypeRepresentation(513, 1, 513, 1);
			AddTypeRepresentation(514, 1, 514, 1);
			AddTypeRepresentation(516, 1, 516, 1);
			AddTypeRepresentation(517, 1, 517, 1);
			AddTypeRepresentation(518, 1, 518, 1);
			AddTypeRepresentation(519, 1, 519, 1);
			AddTypeRepresentation(520, 1, 520, 1);
			AddTypeRepresentation(521, 1, 521, 1);
			AddTypeRepresentation(522, 1, 522, 1);
			AddTypeRepresentation(523, 1, 523, 1);
			AddTypeRepresentation(524, 1, 524, 1);
			AddTypeRepresentation(525, 1, 525, 1);
			AddTypeRepresentation(526, 1, 526, 1);
			AddTypeRepresentation(527, 1, 527, 1);
			AddTypeRepresentation(528, 1, 528, 1);
			AddTypeRepresentation(529, 1, 529, 1);
			AddTypeRepresentation(530, 1, 530, 1);
			AddTypeRepresentation(531, 1, 531, 1);
			AddTypeRepresentation(532, 1, 532, 1);
			AddTypeRepresentation(533, 1, 533, 1);
			AddTypeRepresentation(534, 1, 534, 1);
			AddTypeRepresentation(535, 1, 535, 1);
			AddTypeRepresentation(536, 1, 536, 1);
			AddTypeRepresentation(537, 1, 537, 1);
			AddTypeRepresentation(538, 1, 538, 1);
			AddTypeRepresentation(539, 1, 539, 1);
			AddTypeRepresentation(540, 1, 540, 1);
			AddTypeRepresentation(541, 1, 541, 1);
			AddTypeRepresentation(542, 1, 542, 1);
			AddTypeRepresentation(543, 1, 543, 1);
			AddTypeRepresentation(560, 1, 560, 1);
			AddTypeRepresentation(565, 1, 565, 1);
			AddTypeRepresentation(572, 1, 572, 1);
			AddTypeRepresentation(573, 1, 573, 1);
			AddTypeRepresentation(574, 1, 574, 1);
			AddTypeRepresentation(575, 1, 575, 1);
			AddTypeRepresentation(576, 1, 576, 1);
			AddTypeRepresentation(578, 1, 578, 1);
			AddTypeRepresentation(563, 1, 563, 1);
			AddTypeRepresentation(564, 1, 564, 1);
			AddTypeRepresentation(579, 1, 579, 1);
			AddTypeRepresentation(580, 1, 580, 1);
			AddTypeRepresentation(581, 1, 581, 1);
			AddTypeRepresentation(582, 1, 582, 1);
			AddTypeRepresentation(583, 1, 583, 1);
			AddTypeRepresentation(584, 1, 584, 1);
			AddTypeRepresentation(585, 1, 585, 1);
			AddTypeRepresentation(3, 0, 2, 10);
			AddTypeRepresentation(4, 0, 2, 10);
			AddTypeRepresentation(5, 0, 1, 1);
			AddTypeRepresentation(6, 0, 2, 10);
			AddTypeRepresentation(7, 0, 2, 10);
			AddTypeRepresentation(9, 0, 1, 1);
			AddTypeRepresentation(13, 0, 0, 0);
			AddTypeRepresentation(14, 0, 0, 0);
			AddTypeRepresentation(15, 0, 23, 1);
			AddTypeRepresentation(16, 0, 0, 0);
			AddTypeRepresentation(17, 0, 0, 0);
			AddTypeRepresentation(18, 0, 0, 0);
			AddTypeRepresentation(19, 0, 0, 0);
			AddTypeRepresentation(20, 0, 0, 0);
			AddTypeRepresentation(21, 0, 0, 0);
			AddTypeRepresentation(22, 0, 0, 0);
			AddTypeRepresentation(39, 0, 120, 1);
			AddTypeRepresentation(58, 0, 0, 0);
			AddTypeRepresentation(68, 0, 2, 10);
			AddTypeRepresentation(69, 0, 0, 0);
			AddTypeRepresentation(70, 0, 0, 0);
			AddTypeRepresentation(74, 0, 0, 0);
			AddTypeRepresentation(76, 0, 0, 0);
			AddTypeRepresentation(91, 0, 2, 10);
			AddTypeRepresentation(94, 0, 1, 1);
			AddTypeRepresentation(95, 0, 23, 1);
			AddTypeRepresentation(96, 0, 96, 1);
			AddTypeRepresentation(97, 0, 96, 1);
			AddTypeRepresentation(100, 0, 100, 1);
			AddTypeRepresentation(101, 0, 101, 1);
			AddTypeRepresentation(102, 0, 102, 1);
			AddTypeRepresentation(104, 0, 11, 1);
			AddTypeRepresentation(105, 0, 0, 0);
			AddTypeRepresentation(106, 0, 106, 1);
			AddTypeRepresentation(108, 0, 109, 1);
			AddTypeRepresentation(109, 0, 109, 1);
			AddTypeRepresentation(110, 0, 111, 1);
			AddTypeRepresentation(111, 0, 111, 1);
			AddTypeRepresentation(112, 0, 112, 1);
			AddTypeRepresentation(113, 0, 113, 1);
			AddTypeRepresentation(114, 0, 114, 1);
			AddTypeRepresentation(115, 0, 115, 1);
			AddTypeRepresentation(116, 0, 102, 1);
			AddTypeRepresentation(118, 0, 0, 0);
			AddTypeRepresentation(119, 0, 119, 1);
			AddTypeRepresentation(121, 0, 0, 0);
			AddTypeRepresentation(122, 0, 0, 0);
			AddTypeRepresentation(123, 0, 0, 0);
			AddTypeRepresentation(136, 0, 0, 0);
			AddTypeRepresentation(146, 0, 146, 1);
			AddTypeRepresentation(147, 0, 0, 0);
			AddTypeRepresentation(152, 0, 2, 10);
			AddTypeRepresentation(153, 0, 2, 10);
			AddTypeRepresentation(154, 0, 2, 10);
			AddTypeRepresentation(155, 0, 1, 1);
			AddTypeRepresentation(156, 0, 12, 10);
			AddTypeRepresentation(172, 0, 2, 10);
			AddTypeRepresentation(178, 0, 178, 1);
			AddTypeRepresentation(179, 0, 179, 1);
			AddTypeRepresentation(180, 0, 180, 1);
			AddTypeRepresentation(181, 0, 181, 1);
			AddTypeRepresentation(182, 0, 182, 1);
			AddTypeRepresentation(183, 0, 183, 1);
			AddTypeRepresentation(184, 0, 12, 10);
			AddTypeRepresentation(185, 0, 185, 1);
			AddTypeRepresentation(186, 0, 186, 1);
			AddTypeRepresentation(187, 0, 187, 1);
			AddTypeRepresentation(188, 0, 188, 1);
			AddTypeRepresentation(189, 0, 189, 1);
			AddTypeRepresentation(190, 0, 190, 1);
			AddTypeRepresentation(191, 0, 0, 0);
			AddTypeRepresentation(192, 0, 0, 0);
			AddTypeRepresentation(195, 0, 112, 1);
			AddTypeRepresentation(196, 0, 113, 1);
			AddTypeRepresentation(197, 0, 114, 1);
			AddTypeRepresentation(208, 0, 208, 1);
			AddTypeRepresentation(209, 0, 0, 0);
			AddTypeRepresentation(198, 0, 119, 1);
			AddTypeRepresentation(231, 0, 231, 1);
			AddTypeRepresentation(232, 0, 231, 1);
			AddTypeRepresentation(233, 0, 233, 1);
			AddTypeRepresentation(252, 0, 252, 1);
			AddTypeRepresentation(241, 0, 109, 1);
			AddTypeRepresentation(515, 0, 0, 0);
			typeAndRepFor1100 = new short[typeAndRep[0]];
			Array.Copy(typeAndRep, 0, typeAndRepFor1100, 0, typeAndRep[0]);
			AddTypeRepresentation(590, 1, 590, 1);
			AddTypeRepresentation(591, 1, 591, 1);
			AddTypeRepresentation(592, 1, 592, 1);
			AddTypeRepresentation(613, 1, 613, 1);
			AddTypeRepresentation(614, 1, 614, 1);
			AddTypeRepresentation(615, 1, 615, 1);
			AddTypeRepresentation(616, 1, 616, 1);
			AddTypeRepresentation(611, 1, 611, 1);
			AddTypeRepresentation(612, 1, 612, 1);
			AddTypeRepresentation(593, 1, 593, 1);
			AddTypeRepresentation(594, 1, 594, 1);
			AddTypeRepresentation(595, 1, 595, 1);
			AddTypeRepresentation(596, 1, 596, 1);
			AddTypeRepresentation(597, 1, 597, 1);
			AddTypeRepresentation(598, 1, 598, 1);
			AddTypeRepresentation(599, 1, 599, 1);
			AddTypeRepresentation(600, 1, 600, 1);
			AddTypeRepresentation(601, 1, 601, 1);
			AddTypeRepresentation(602, 1, 602, 1);
			AddTypeRepresentation(603, 1, 603, 1);
			AddTypeRepresentation(604, 1, 604, 1);
			AddTypeRepresentation(605, 1, 605, 1);
			AddTypeRepresentation(622, 1, 622, 1);
			AddTypeRepresentation(623, 1, 623, 1);
			AddTypeRepresentation(624, 1, 624, 1);
			AddTypeRepresentation(625, 1, 625, 1);
			AddTypeRepresentation(626, 1, 626, 1);
			AddTypeRepresentation(627, 1, 627, 1);
			AddTypeRepresentation(628, 1, 628, 1);
			AddTypeRepresentation(629, 1, 629, 1);
			AddTypeRepresentation(630, 1, 630, 1);
			AddTypeRepresentation(631, 1, 631, 1);
			AddTypeRepresentation(632, 1, 632, 1);
			AddTypeRepresentation(637, 1, 637, 1);
			AddTypeRepresentation(638, 1, 638, 1);
			AddTypeRepresentation(636, 1, 636, 1);
			typeAndRepFor1200 = new short[typeAndRep[0]];
			Array.Copy(typeAndRep, 0, typeAndRepFor1200, 0, typeAndRep[0]);
			AddTypeRepresentation(639, 1, 639, 1);
			AddTypeRepresentation(640, 1, 640, 1);
		}

		private static void AddTypeRepresentation(short dty, short ttctype, short ndty, short rep)
		{
			if (typeAndRep.Length < typeAndRep[0] + 4)
			{
				short[] destinationArray = new short[typeAndRep.Length * 2];
				Array.Copy(typeAndRep, 0, destinationArray, 0, typeAndRep[0] + 1);
				typeAndRep = null;
				typeAndRep = destinationArray;
			}
			int num = typeAndRep[0];
			typeAndRep[num] = dty;
			typeAndRep[num + 1] = ndty;
			if (ndty == 0)
			{
				typeAndRep[0] = (short)(num + 2);
				return;
			}
			typeAndRep[num + 2] = rep;
			typeAndRep[num + 3] = 0;
			typeAndRep[0] = (short)(num + 4);
		}

		internal TTCDataTypeNegotiation(MarshallingEngine marshallingEngine)
			: base(marshallingEngine, 2)
		{
		}

		internal void Initialize(byte[] serverCompileTimeCap, byte[] serverRunTimeCap, short serverCharacterSet, short serverNCharSet, byte serverFlags)
		{
			if (serverCompileTimeCap == null || serverCompileTimeCap.Length <= 27 || serverCompileTimeCap[27] == 0)
			{
				m_CompileTimeCapabilities[27] = 0;
			}
			if (serverCompileTimeCap != null && serverCompileTimeCap[7] >= 8 && ConfigBaseClass.m_XMLTypeClientSideDecoding)
			{
				m_CompileTimeCapabilities[36] = 4;
			}
			else if (serverCompileTimeCap != null && serverCompileTimeCap[7] < 7)
			{
				m_CompileTimeCapabilities[36] = 0;
			}
			m_clientRemoteIn = serverCharacterSet;
			m_clientRemoteOut = serverCharacterSet;
			m_ncharSetId = serverNCharSet;
			m_clientFlags = serverFlags;
			if (serverRunTimeCap == null || serverRunTimeCap.Length < 1 || (serverRunTimeCap[1] & 1) != 1)
			{
				m_RuntimeCapabilities[1] &= 0;
			}
			if (serverRunTimeCap != null && serverRunTimeCap.Length > 6 && (serverRunTimeCap[6] & 4) == 4)
			{
				m_RuntimeCapabilities[6] |= 4;
				m_b32kTypeSupported = true;
			}
			if (serverRunTimeCap != null && serverRunTimeCap.Length > 6 && (serverRunTimeCap[6] & 0x10) == 16)
			{
				m_bSupportSessionStateOps = true;
			}
			if (serverRunTimeCap != null && serverRunTimeCap.Length > 6 && (serverRunTimeCap[6] & 2) == 2)
			{
				m_RuntimeCapabilities[6] |= 2;
			}
			if (serverCompileTimeCap == null || serverCompileTimeCap.Length <= 37 || (serverCompileTimeCap[37] & 2) != 2)
			{
				m_CompileTimeCapabilities[37] = 0;
				m_CompileTimeCapabilities[1] = 0;
			}
			if (serverCompileTimeCap != null && serverCompileTimeCap.Length > 7)
			{
				if (serverCompileTimeCap[7] >= 8)
				{
					runtimeTypeAndRep = typeAndRep;
				}
				else if (serverCompileTimeCap[7] >= 7)
				{
					runtimeTypeAndRep = typeAndRepFor1200;
				}
				else
				{
					runtimeTypeAndRep = typeAndRepFor1100;
				}
			}
		}

		internal override void ReInit(MarshallingEngine marshallingEngine)
		{
			base.ReInit(marshallingEngine);
			m_dbTimeZoneBytes = null;
			m_sendTZDataAsLocalTime = false;
		}

		private void MarshalTypeReps()
		{
			if (m_CompileTimeCapabilities[27] == 0)
			{
				for (int i = 1; i < runtimeTypeAndRep[0]; i++)
				{
					m_marshallingEngine.MarshalUB1((byte)(runtimeTypeAndRep[i] & 0xFF));
				}
				m_marshallingEngine.MarshalUB1(0);
				return;
			}
			byte b = m_marshallingEngine.m_typeRepresentation.m_representationArray[1];
			m_marshallingEngine.m_typeRepresentation.m_representationArray[1] = 0;
			for (int j = 1; j < runtimeTypeAndRep[0]; j++)
			{
				m_marshallingEngine.MarshalUB2(runtimeTypeAndRep[j]);
			}
			m_marshallingEngine.MarshalUB2(0);
			m_marshallingEngine.m_typeRepresentation.m_representationArray[1] = b;
		}

		internal void WriteMessage(byte[] serverCompileTimeCap, byte[] serverRunTimeCap, short serverCharacterSet, short serverNCharSet, byte serverFlags)
		{
			Initialize(serverCompileTimeCap, serverRunTimeCap, serverCharacterSet, serverNCharSet, serverFlags);
			WriteTTCCode();
			m_marshallingEngine.MarshalUB2(m_clientRemoteIn);
			m_marshallingEngine.MarshalUB2(m_clientRemoteOut);
			m_marshallingEngine.MarshalUB1(m_clientFlags);
			m_marshallingEngine.MarshalUB1((short)m_CompileTimeCapabilities.Length);
			m_marshallingEngine.MarshalB1Array(m_CompileTimeCapabilities);
			m_marshallingEngine.MarshalUB1((short)m_RuntimeCapabilities.Length);
			m_marshallingEngine.MarshalB1Array(m_RuntimeCapabilities);
			if ((m_RuntimeCapabilities[1] & 1) == 1)
			{
				m_marshallingEngine.MarshalB1Array(GetTZBytes());
				if ((m_CompileTimeCapabilities[37] & 2) == 2)
				{
					byte[] bytes = BitConverter.GetBytes(s_latestTZVersion);
					Array.Reverse(bytes, 0, bytes.Length);
					m_marshallingEngine.MarshalB1Array(bytes);
				}
			}
			m_marshallingEngine.MarshalUB2(m_ncharSetId);
			MarshalTypeReps();
		}

		internal static byte[] GetTZBytes()
		{
			double totalMilliseconds = TimeZoneInfo.Local.GetUtcOffset(DateTime.Today).TotalMilliseconds;
			int num = (int)(totalMilliseconds / 3600000.0);
			int num2 = (int)(totalMilliseconds / 60000.0 % 60.0);
			int num3 = (int)(totalMilliseconds / 1000.0 % 60.0);
			return new byte[11]
			{
				128,
				0,
				0,
				0,
				(byte)((uint)(num + 60) & 0xFFu),
				(byte)((uint)(num2 + 60) & 0xFFu),
				(byte)((uint)(num3 + 60) & 0xFFu),
				128,
				0,
				0,
				0
			};
		}

		internal void ReadResponse()
		{
			if ((byte)m_marshallingEngine.UnmarshalUB1() != 2)
			{
				throw new Exception("TTC Error");
			}
			if (!ValidateTypeRepresentations())
			{
				throw new Exception("TTC Error");
			}
			SetBasicTypeRepresentations(m_marshallingEngine.m_typeRepresentation);
		}

		private bool ValidateTypeRepresentations()
		{
			bool flag = false;
			int num = 0;
			byte b = 0;
			if (m_CompileTimeCapabilities[27] == 1)
			{
				b = m_marshallingEngine.m_typeRepresentation.m_representationArray[1];
				m_marshallingEngine.m_typeRepresentation.m_representationArray[1] = 0;
			}
			if (m_RuntimeCapabilities[1] == 1)
			{
				m_dbTimeZoneBytes = m_marshallingEngine.UnmarshalNBytes(TTCIntervalTypeAccessor.INTERVALTYPE_MAX_LENGTH);
				if ((m_CompileTimeCapabilities[37] & 2) == 2)
				{
					byte[] array = m_marshallingEngine.UnmarshalNBytes(4);
					if ((((array[0] & 0xFF) << 24) | ((array[1] & 0xFF) << 16) | ((array[2] & 0xFF) << 8) | (array[3] & 0xFF)) != s_latestTZVersion)
					{
						m_sendTZDataAsLocalTime = true;
					}
				}
			}
			while (true)
			{
				short num2 = ((m_CompileTimeCapabilities[27] != 1) ? m_marshallingEngine.UnmarshalUB1() : ((short)m_marshallingEngine.UnmarshalUB2()));
				if (!flag)
				{
					if (num2 == 0)
					{
						break;
					}
					flag = true;
					continue;
				}
				switch (num)
				{
				case 0:
					if (num2 == 0)
					{
						flag = false;
					}
					else
					{
						num = 1;
					}
					break;
				case 1:
					num = 0;
					break;
				}
			}
			if (m_CompileTimeCapabilities[27] == 1)
			{
				m_marshallingEngine.m_typeRepresentation.m_representationArray[1] = b;
			}
			return true;
		}

		private void SetBasicTypeRepresentations(TTCTypeRepresentation types)
		{
			types.m_representationArray[0] = 0;
			types.m_representationArray[1] = 1;
			types.m_representationArray[2] = 1;
			types.m_representationArray[3] = 1;
			types.m_representationArray[4] = 1;
		}
	}
}
